package com.store.controller;

import com.store.common.Result;
import com.store.dto.LoginRequest;
import com.store.service.AuthService;
import com.store.vo.LoginResponse;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

/**
 * 认证控制器
 * 
 * @author Store Team
 */
@RestController
@RequestMapping("/auth")
@RequiredArgsConstructor// 自动生成构造函数
public class AuthController {

    private final AuthService authService;

    /**
     * 用户登录
     */
    @PostMapping("/login")//f封装请求以及响应
    public Result<LoginResponse> login(@Valid @RequestBody LoginRequest request)  {//@RequestBody 将请求体中的json数据转换为LoginRequest对象
        try {
            LoginResponse response = authService.login(request);//转成loginrequest对象并验证里面参数，不对走不下去
            return Result.success("登录成功", response);//data变为这个类在给前端
        } catch (Exception e) {
            return Result.error(e.getMessage());
        }
    }

    /**
     * 用户登出
     */
    @PostMapping("/logout")
    public Result<Void> logout() {
        // JWT是无状态的，前端删除token即可
        return Result.success();//前端删除 token
    }

    /**
     * 获取用户信息（测试接口）
     */
    @GetMapping("/userInfo")
    public Result<String> getUserInfo() {
        return Result.success("用户信息获取成功", "userInfo");
    }

}

















